package com.yehongyu.mytools.ui.awt;

//: BadIdea2.java
//An improvement over BadIdea1.java, since it
//uses the WindowAdapter as an inner class 
//instead of implementing all the methods of
//WindowListener, but still misses the
//valuable modularity of inner classes
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class BadIdea2 extends Frame implements ActionListener {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	Button b1 = new Button("Button 1"), b2 = new Button("Button 2");

	public BadIdea2() {
		setLayout(new FlowLayout());
		addWindowListener(new WL());
		b1.addActionListener(this);
		b2.addActionListener(this);
		add(b1);
		add(b2);
	}

	public void actionPerformed(ActionEvent e) {
		Object source = e.getSource();
		if (source == b1)
			System.out.println("Button 1 pressed");
		else if (source == b2)
			System.out.println("Button 2 pressed");
		else
			System.out.println("Something else");
	}

	class WL extends WindowAdapter {
		public void windowClosing(WindowEvent e) {
			System.out.println("Window Closing");
			System.exit(0);
		}
	}

	public static void main(String[] args) {
		Frame f = new BadIdea2();
		f.setSize(300, 200);
		f.setVisible(true);
	}
} // /:~
